######################################################################
# File: server/ma...nt/co...ds/runmudserver.py     Part of DjangoMUD #
#                                                                    #
# Copyright (C) 2010, Joachim Pileborg.                              #
# All rights reserved.                                               #
#                                                                    #
# Redistribution and use in source and binary forms, with or without #
# modification, are permitted provided that the following conditions #
# are met:                                                           #
#                                                                    #
#   o Redistributions of source code must retain the above copyright #
#     notice, this list of conditions and the following disclaimer.  #
#   o Redistributions in binary form must reproduce the above        #
#     copyright notice, this list of conditions and the following    #
#     disclaimer in the documentation and/or other materials         #
#     provided with the distribution.                                #
#   o Neither the name of the author nor the names of its            #
#     contributors may be used to endorse or promote products        #
#     derived from this software without specific prior written      #
#     permission.                                                    #
#                                                                    #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND             #
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,        #
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF           #
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE           #
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS  #
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,#
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,           #
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR #
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY       #
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR     #
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF #
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF    #
# SUCH DAMAGE.                                                       #
######################################################################

from optparse import make_option

from django.conf import settings

from djangomud.server.management.djangomudbasecommand import DjangoMUDBaseCommand

######################################################################

class Command(DjangoMUDBaseCommand):
    option_list = DjangoMUDBaseCommand.option_list + (
        make_option('--telnetport', action='store', dest='telnet_port',
                    default=settings.DEFAULT_TELNET_PORT,
                    help='Tells Django the portnumber for telnet connections.'),
        make_option('--telnetaddr', action='store', dest='telnet_addr',
                    default=settings.DEFAULT_TELNET_ADDR,
                    help='Tells Django the address to bind to for telnet connections.'),
        )

    help = "Starts the MUD server."

    # Validation is called explicitly each time the server is reloaded.
    requires_model_validation = False

    def run(self, *args, **options):
        from djangomud.server.mudserver import MUDServer

        server = MUDServer()
        server.telnet_addr = options.get('telnet_addr', settings.DEFAULT_TELNET_ADDR)
        server.telnet_port = options.get('telnet_port', settings.DEFAULT_TELNET_PORT)

        server.run()

######################################################################
